let express = require("express")
let path = require("path")
let fs = require("fs")
let timeStamp = require("time-stamp")
let svgCaptcha = require("svg-captcha")
let router = express.Router()



router.get("/register",(req,res)=>{
    res.sendFile(path.join(__dirname,"../views/register.html"))
})


router.post("/register",(req,res,next)=>{

    let {username,password,password2,yzm}=req.body

    // 每一个都不能为空
    if(!username || !password || !password2 || !yzm){
        next("请输入必要的参数")
        return
    }

    // 两次输入的密码必须一致
    if(password!=password2){
        next("两次输入的密码必须一致")
        return
    }


    // 验证码是否正确  yzm  
    // console.log(yzm);
    // console.log(req.session.yzm);

    if( yzm.toLowerCase() !=  req.session.yzm.toLowerCase()  ){
        next("验证码不正确")
        return
    }



    // 和数据库做对比
    let filepath=path.join(__dirname,"../data/persons.json")
    let persons=JSON.parse(   fs.readFileSync( filepath   )    )

    // console.log(persons);
    let index=persons.findIndex(value=>value.username==username)
    if(index!=-1){
        next("用户名已被占用")
        return
    }



    // 执行注册
    persons.push({
        username,
        password,
        time:timeStamp("YYYY年MM月DD日 HH:mm:ss")
    })

    fs.writeFileSync(filepath, JSON.stringify(persons) )


    res.send("注册成功")
 
})



// 创建验证码路由
router.get("/yzm",(req,res)=>{
   let svg= svgCaptcha.create({
        color:true,
        background:"#EEE",
        noise:5,
        ignoreChars:'oOIl'
    })


    // 存储到服务器上的text
    req.session.yzm=svg.text
 

    // 响应给页面的图片
    res.type("svg")
    res.send(svg.data)

})

// 暴露模块
module.exports=router